home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-03 | 8.0 KB | 289 lines | [TEXT/MPS ] |
- //----------------------------------------------------------------------------------------
- // UFileStream.cp
- // Copyright © 1990-96 by Apple Computer, Inc. All rights reserved.
- //
- // Originally written by Larry S. Rosenstein. Used by permission
- //----------------------------------------------------------------------------------------
-
- #ifndef __UFILESTREAM__
- #include "UFileStream.h"
- #endif
-
- // MacApp
-
- #ifndef __GEOMETRY__
- #include "Geometry.h"
- #endif
-
- #ifndef __UFAILURE__
- #include "UFailure.h"
- #endif
-
- #ifndef __UFILE__
- #include "UFile.h"
- #endif
-
- #ifndef __ULIST__
- #include "UList.h"
- #endif
-
- #ifndef __ULISTITERATOR__
- #include "UListIterator.h"
- #endif
-
- #ifndef __UMACAPPGLOBALS__
- #include "UMacAppGlobals.h"
- #endif
-
- #ifndef __UMACAPPUTILITIES__
- #include "UMacAppUtilities.h"
- #endif
-
- #ifndef __UMEMORY__
- #include "UMemory.h"
- #endif
-
- #ifndef __UPATCH__
- #include "UPatch.h"
- #endif
-
- // Toolbox
-
- #ifndef __ERRORS__
- #include <Errors.h>
- #endif
-
- #ifndef __FILES__
- #include <Files.h>
- #endif
-
- #ifndef __LOWMEM__
- #include <LowMem.h>
- #endif
-
- #ifndef __OSUTILS__
- #include <OSUtils.h>
- #endif
-
- #ifndef __RESOURCES__
- #include <Resources.h>
- #endif
-
- #ifndef __TEXTEDIT__
- #include <TextEdit.h>
- #endif
-
- // ANSI
-
- #ifndef __LIMITS__
- #include <limits.h>
- #endif
-
-
- //========================================================================================
- // CLASS TFileStream
- //========================================================================================
- #undef Inherited
- #define Inherited TStream
-
- #pragma segment MAStreamCreate
- MA_DEFINE_CLASS_M1(TFileStream, Inherited);
-
- //----------------------------------------------------------------------------------------
- // TFileStream constructor
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamCreate
-
- TFileStream::TFileStream()
- {
- fFile = NULL;
- } // TFileStream::TFileStream
-
- //----------------------------------------------------------------------------------------
- // TFileStream destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TFileStream::~TFileStream()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TFileStream::IFileStream:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamCreate
-
- void TFileStream::IFileStream(TFile* itsFile)
- {
- this->IStream();
- fFile = itsFile; // Remember the file reference.
- } // TFileStream::IFileStream
-
- //----------------------------------------------------------------------------------------
- // TFileStream::GetPosition:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamUtil
-
- long TFileStream::GetPosition() // override
- {
- long itsDataMark;
-
- FailNIL(fFile);
- FailOSErr(fFile->GetDataMark(itsDataMark)); // Call the TFile method.
- return itsDataMark; // Return the result.
- } // TFileStream::GetPosition
-
- //----------------------------------------------------------------------------------------
- // TFileStream::GetSize:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamUtil
-
- long TFileStream::GetSize() // override
- {
- long itsDataLength;
-
- FailNIL(fFile);
- FailOSErr(fFile->GetDataLength(itsDataLength)); // Call the TFile method.
- return itsDataLength; // Return the result.
- } // TFileStream::GetSize
-
-
- //----------------------------------------------------------------------------------------
- // TFileStream::SetPosition:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamUtil
-
- void TFileStream::SetPosition(long newPosition)// override
- {
- FailNIL(fFile);
- FailOSErr(fFile->SetDataMark(newPosition,fsFromStart));
- } // TFileStream::SetPosition
-
- //----------------------------------------------------------------------------------------
- // TFileStream::SetSize:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamUtil
-
- void TFileStream::SetSize(long newSize) // override
- {
- FailNIL(fFile);
- FailOSErr(fFile->SetDataLength(newSize));
- } // TFileStream::SetSize
-
- //----------------------------------------------------------------------------------------
- // TFileStream::ReadBytes:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamRead
-
- void TFileStream::ReadBytes(void* p,
- long count) // override
- {
- FailNIL(fFile);
- FailOSErr(fFile->ReadData(p,count));
- } // TFileStream::ReadBytes
-
- //----------------------------------------------------------------------------------------
- // TFileStream::WriteBytes:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamWrite
-
- void TFileStream::WriteBytes(const void* p,
- long count) // override
- {
- FailNIL(fFile);
- FailOSErr(fFile->WriteData(p,count));
- } // TFileStream::WriteBytes
-
-
- //========================================================================================
- // CLASS TFileResourceStream
- //========================================================================================
- #undef Inherited
- #define Inherited TResourceStream
-
- #pragma segment Main
- MA_DEFINE_CLASS_M1(TFileResourceStream, Inherited);
-
- //----------------------------------------------------------------------------------------
- // TFileResourceStream::TFileResourceStream:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamCreate
-
- TFileResourceStream::TFileResourceStream()
- {
- fFile = NULL;
- } // TFileResourceStream::TFileResourceStream
-
- //----------------------------------------------------------------------------------------
- // TFileResourceStream destructor
- //----------------------------------------------------------------------------------------
- #pragma segment MADestructorRes
-
- TFileResourceStream::~TFileResourceStream()
- {
- }
-
- //----------------------------------------------------------------------------------------
- // TFileResourceStream::IFileResourceStream:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamCreate
-
- void TFileResourceStream::IFileResourceStream( TFile* theFile,
- ResType theType,
- ResNumber theID)
- {
- short currentResource = theFile->UseResource();
-
- Inherited::IResourceStream (theType, theID);
-
- MAUseResFile( currentResource );
- fFile = theFile;
- } // TFileResourceStream::IFileResourceStream
-
- //----------------------------------------------------------------------------------------
- // TFileResourceStream::WriteBytes:
- //----------------------------------------------------------------------------------------
- #pragma segment MASectionWrite
-
- void TFileResourceStream::WriteBytes(const void* p, long count)
- {
- short currentResource = fFile->UseResource();
-
- Inherited::WriteBytes (p, count);
-
- MAUseResFile( currentResource );
- } // TFileResourceStream::WriteBytes
-
- //----------------------------------------------------------------------------------------
- // TFileResourceStream::ReadBytes:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamRead
-
- void TFileResourceStream::ReadBytes(void* p, long count)
- {
- short currentResource = fFile->UseResource();
-
- Inherited::ReadBytes (p, count);
-
- MAUseResFile( currentResource );
- } // TFileResourceStream::ReadBytes
-
- //----------------------------------------------------------------------------------------
- // TFileResourceStream::SetSize:
- //----------------------------------------------------------------------------------------
- #pragma segment MAStreamUtil
-
- void TFileResourceStream::SetSize(long newSize)
- {
- short currentResource = fFile->UseResource();
-
- Inherited::SetSize (newSize);
-
- MAUseResFile( currentResource );
- } // TFileResourceStream::SetSize
-
- //----------------------------------------------------------------------------------------
- // End of UFileStream.cp
-
- #pragma segment Inline
-